/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.colegiatura.beans;


import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import org.apache.myfaces.custom.fileupload.UploadedFile;
import org.cip.esymons.colegiatura.bc.ColegiadoDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoEspecialidadDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoImagenDelegate;
import org.cip.esymons.colegiatura.bc.DireccionDelegate;
import org.cip.esymons.colegiatura.bc.ExperienciaLaboralDelegate;
import org.cip.esymons.colegiatura.bc.FormacionProfesionalDelegate;
import org.cip.esymons.colegiatura.bc.NacionalidadDelegate;
import org.cip.esymons.colegiatura.bc.PaisDelegate;
import org.cip.esymons.colegiatura.bc.PersonaJuridicaDelegate;
import org.cip.esymons.colegiatura.bc.PersonaNaturalDelegate;
import org.cip.esymons.colegiatura.bc.TelefonoDelegate;
import org.cip.esymons.colegiatura.bc.TituloDelegate;
import org.cip.esymons.colegiatura.be.Colegiado;
import org.cip.esymons.colegiatura.be.ColegiadoImagen;
import org.cip.esymons.colegiatura.be.ExperienciaLaboral;
import org.cip.esymons.colegiatura.be.FormacionProfesional;
import org.cip.esymons.colegiatura.be.TipoColegiado;
import org.cip.esymons.general.be.ColegiadoEspecialidad;
import org.cip.esymons.general.be.DireccionPersona;
import org.cip.esymons.general.be.Nacionalidad;
import org.cip.esymons.general.be.Pais;
import org.cip.esymons.general.be.PersonaJuridica;
import org.cip.esymons.general.be.PersonaNatural;
import org.cip.esymons.general.be.TelefonoSolicitante;
import org.cip.esymons.general.be.Titulo;
import org.cip.esymons.general.util.ControladorAbstracto;

/**
 *
 * @author ADMINISTRADOR
 */
public class colegiadoExternoController {

    private PersonaJuridicaDelegate perJuridicaDelegado;
    private ColegiadoDelegate colegiadoDelegado;
    private ColegiadoEspecialidadDelegate colEspDelegado;
    private FormacionProfesionalDelegate fopDelegado;
    private ExperienciaLaboralDelegate expLabDelegado;
    private ColegiadoImagenDelegate delegadoImagen;
    private PersonaNaturalDelegate delegadoPersonaNatural;
    private TituloDelegate delegadoTitulo;
    private NacionalidadDelegate delegadoNacionalidad;
    private PaisDelegate delegadoPais;
    private DireccionDelegate delegadoDireccion;
    private TelefonoDelegate delegadoTelefono;
    private FormacionProfesionalDelegate delegadoFormacion;
  
    private Colegiado colegiado;
    private PersonaJuridica perJuridica,personaJuridica;
    private PersonaNatural personaNatural,persona;
    private TelefonoSolicitante telefono,celular,telefonoEmp;
    private DireccionPersona direccion,direccionEmp;
    private ColegiadoEspecialidad colEsp;
    private Nacionalidad nacion;
    private FormacionProfesional formacion;
    private ExperienciaLaboral experiencia;
    private Pais pais;
    private TipoColegiado tipoColegiado;
    private Titulo titulo;

    private ColegiadoImagen colImagen;
    private String dirImagen;
    private Integer titCodigo;

    private String genCodigo, autoCodigo;
    private boolean activo,ws;

    private busqColXCip.Colegiado colegiadoWS;
    private int cip;
    private String destino;
    private String tabber;
    private String apepat,apemat,nombres;
   

    public colegiadoExternoController() {

        perJuridicaDelegado = new PersonaJuridicaDelegate();
        colegiadoDelegado =  new ColegiadoDelegate();
        colEspDelegado = new ColegiadoEspecialidadDelegate();
        fopDelegado = new FormacionProfesionalDelegate();
        expLabDelegado = new ExperienciaLaboralDelegate();
        delegadoImagen = new ColegiadoImagenDelegate();
        delegadoPersonaNatural = new PersonaNaturalDelegate();
        delegadoTitulo = new TituloDelegate();
        delegadoNacionalidad = new NacionalidadDelegate();
        delegadoPais = new PaisDelegate();
        delegadoDireccion = new DireccionDelegate();
        delegadoTelefono = new TelefonoDelegate();
        delegadoFormacion = new FormacionProfesionalDelegate();

        colegiado =  new Colegiado();
        perJuridica = new PersonaJuridica();
        direccion = new DireccionPersona();
        telefono = new TelefonoSolicitante();
        celular = new TelefonoSolicitante();
        colEsp = new ColegiadoEspecialidad();
        formacion = new FormacionProfesional();
        telefonoEmp = new TelefonoSolicitante();
        direccionEmp = new DireccionPersona();
        experiencia = new ExperienciaLaboral();
        nacion = new Nacionalidad();
        pais = new Pais();
        tipoColegiado = new TipoColegiado();
        personaNatural = new PersonaNatural();
        persona = new PersonaNatural();
        personaJuridica = new PersonaJuridica();
        titulo = new Titulo();

        colImagen = new ColegiadoImagen();
        dirImagen = "/modulos/colegiatura/archivos/";

        activo = false;
        colegiadoWS =  new busqColXCip.Colegiado();
        tabber = "personal";
        ws = false;
    }

    public boolean getWs() {
        return ws;
    }

    public void setWs(boolean ws) {
        this.ws = ws;
    }

    public String getApemat() {
        return apemat;
    }

    public void setApemat(String apemat) {
        this.apemat = apemat;
    }

    public String getApepat() {
        return apepat;
    }

    public void setApepat(String apepat) {
        this.apepat = apepat;
    }

    public String getNombres() {
        return nombres;
    }

    public void setNombres(String nombres) {
        this.nombres = nombres;
    }

    public FormacionProfesionalDelegate getDelegadoFormacion() {
        return delegadoFormacion;
    }

    public void setDelegadoFormacion(FormacionProfesionalDelegate delegadoFormacion) {
        this.delegadoFormacion = delegadoFormacion;
    }

    public TelefonoDelegate getDelegadoTelefono() {
        return delegadoTelefono;
    }

    public void setDelegadoTelefono(TelefonoDelegate delegadoTelefono) {
        this.delegadoTelefono = delegadoTelefono;
    }

    public DireccionDelegate getDelegadoDireccion() {
        return delegadoDireccion;
    }

    public void setDelegadoDireccion(DireccionDelegate delegadoDireccion) {
        this.delegadoDireccion = delegadoDireccion;
    }

    public PaisDelegate getDelegadoPais() {
        return delegadoPais;
    }

    public void setDelegadoPais(PaisDelegate delegadoPais) {
        this.delegadoPais = delegadoPais;
    }

    public NacionalidadDelegate getDelegadoNacionalidad() {
        return delegadoNacionalidad;
    }

    public void setDelegadoNacionalidad(NacionalidadDelegate delegadoNacionalidad) {
        this.delegadoNacionalidad = delegadoNacionalidad;
    }

    public String getTabber() {
        return tabber;
    }

    public void setTabber(String tabber) {
        this.tabber = tabber;
    }

    public int getCip() {
        return cip;
    }

    public void setCip(int cip) {
        this.cip = cip;
    }

    public busqColXCip.Colegiado getColegiadoWS() {
        return colegiadoWS;
    }

    public void setColegiadoWS(busqColXCip.Colegiado colegiadoWS) {
        this.colegiadoWS = colegiadoWS;
    }

    public boolean getActivo() {
        return activo;
    }

    public void setActivo(boolean activo) {
        this.activo = activo;
    }

    public String getAutoCodigo() {
        return autoCodigo;
    }

    public void setAutoCodigo(String autoCodigo) {
        this.autoCodigo = autoCodigo;
    }

    public String getGenCodigo() {
        return genCodigo;
    }

    public void setGenCodigo(String genCodigo) {
        this.genCodigo = genCodigo;
    }

    public TituloDelegate getDelegadoTitulo() {
        return delegadoTitulo;
    }

    public void setDelegadoTitulo(TituloDelegate delegadoTitulo) {
        this.delegadoTitulo = delegadoTitulo;
    }

    public Integer getTitCodigo() {
        return titCodigo;
    }

    public void setTitCodigo(Integer titCodigo) {
        this.titCodigo = titCodigo;
    }

    public Titulo getTitulo() {
        return titulo;
    }

    public void setTitulo(Titulo titulo) {
        this.titulo = titulo;
    }

    public PersonaJuridica getPersonaJuridica() {
        return personaJuridica;
    }

    public void setPersonaJuridica(PersonaJuridica personaJuridica) {
        this.personaJuridica = personaJuridica;
    }

    public PersonaNatural getPersona() {
        return persona;
    }

    public void setPersona(PersonaNatural persona) {
        this.persona = persona;
    }

    public PersonaNaturalDelegate getDelegadoPersonaNatural() {
        return delegadoPersonaNatural;
    }

    public void setDelegadoPersonaNatural(PersonaNaturalDelegate delegadoPersonaNatural) {
        this.delegadoPersonaNatural = delegadoPersonaNatural;
    }

    public PersonaNatural getPersonaNatural() {
        return personaNatural;
    }

    public void setPersonaNatural(PersonaNatural personaNatural) {
        this.personaNatural = personaNatural;
    }

    public ColegiadoDelegate getColegiadoDelegado() {
        return colegiadoDelegado;
    }

    public void setColegiadoDelegado(ColegiadoDelegate colegiadoDelegado) {
        this.colegiadoDelegado = colegiadoDelegado;
    }

    public PersonaJuridicaDelegate getPerJuridicaDelegado() {
        return perJuridicaDelegado;
    }

    public void setPerJuridicaDelegado(PersonaJuridicaDelegate perJuridicaDelegado) {
        this.perJuridicaDelegado = perJuridicaDelegado;
    }

    public ColegiadoEspecialidadDelegate getColEspDelegado() {
        return colEspDelegado;
    }

    public void setColEspDelegado(ColegiadoEspecialidadDelegate colEspDelegado) {
        this.colEspDelegado = colEspDelegado;
    }

    public FormacionProfesionalDelegate getFopDelegado() {
        return fopDelegado;
    }

    public void setFopDelegado(FormacionProfesionalDelegate fopDelegado) {
        this.fopDelegado = fopDelegado;
    }

    public ExperienciaLaboralDelegate getExpLabDelegado() {
        return expLabDelegado;
    }

    public void setExpLabDelegado(ExperienciaLaboralDelegate expLabDelegado) {
        this.expLabDelegado = expLabDelegado;
    }

    public Colegiado getColegiado() {
        return colegiado;
    }

    public void setColegiado(Colegiado colegiado) {
        this.colegiado = colegiado;
    }

    public DireccionPersona getDireccion() {
        return direccion;
    }

    public void setDireccion(DireccionPersona direccion) {
        this.direccion = direccion;
    }

    public PersonaJuridica getPerJuridica() {
        return perJuridica;
    }

    public void setPerJuridica(PersonaJuridica perJuridica) {
        this.perJuridica = perJuridica;
    }

    public TelefonoSolicitante getTelefono() {
        return telefono;
    }

    public void setTelefono(TelefonoSolicitante telefono) {
        this.telefono = telefono;
    }

    public TelefonoSolicitante getCelular() {
        return celular;
    }

    public void setCelular(TelefonoSolicitante celular) {
        this.celular = celular;
    }

    public ColegiadoEspecialidad getColEsp() {
        return colEsp;
    }

    public Nacionalidad getNacion() {
        return nacion;
    }

    public void setNacion(Nacionalidad nacion) {
        this.nacion = nacion;
    }

    public Pais getPais() {
        return pais;
    }

    public void setPais(Pais pais) {
        this.pais = pais;
    }

    public TipoColegiado getTipoColegiado() {
        return tipoColegiado;
    }

    public void setTipoColegiado(TipoColegiado tipoColegiado) {
        this.tipoColegiado = tipoColegiado;
    }

    public void setColEsp(ColegiadoEspecialidad colEsp) {
        this.colEsp = colEsp;
    }

    public FormacionProfesional getFormacion() {
        return formacion;
    }

    public void setFormacion(FormacionProfesional formacion) {
        this.formacion = formacion;
    }

    public DireccionPersona getDireccionEmp() {
        return direccionEmp;
    }

    public void setDireccionEmp(DireccionPersona direccionEmp) {
        this.direccionEmp = direccionEmp;
    }

    public TelefonoSolicitante getTelefonoEmp() {
        return telefonoEmp;
    }

    public void setTelefonoEmp(TelefonoSolicitante telefonoEmp) {
        this.telefonoEmp = telefonoEmp;
    }

    public ExperienciaLaboral getExperiencia() {
        return experiencia;
    }

    public void setExperiencia(ExperienciaLaboral experiencia) {
        this.experiencia = experiencia;
    }

    public Colegiado buscarPorCIP(Integer codigo){

        return colegiadoDelegado.find(codigo);
    }

    public List<Colegiado> getListaColegiadoExterno(){

        return colegiadoDelegado.findAll();
    }

    public ColegiadoImagen getColImagen() {
        return colImagen;
    }

    public void setColImagen(ColegiadoImagen colImagen) {
        this.colImagen = colImagen;
    }

    public ColegiadoImagenDelegate getDelegadoImagen() {
        return delegadoImagen;
    }

    public void setDelegadoImagen(ColegiadoImagenDelegate delegadoImagen) {
        this.delegadoImagen = delegadoImagen;
    }

    public String getDestino() {
        return destino;
    }

    public void setDestino(String destino) {
        this.destino = destino;
    }

      
    public String nuevo(){
       

        return "ir_a_nuevoExt";

    }

    public String grabar(){

        persona = delegadoPersonaNatural.buscarXDni(personaNatural.getPerNroDNI());

        if(persona != null){

            persona.setPerTipo(1);
            persona.setPerActivo(true);
            persona.setPertieneImagen(false);
            persona.setPerfechaRegistro(new Date());
            nacion = delegadoNacionalidad.buscarPeruano();
            persona.setNacionalidad(nacion);
            delegadoPersonaNatural.edit(persona);

            colegiado.setPersonaNatural(persona);
            colegiado.setColestaVivo(true);
            pais = delegadoPais.buscaPeru();
            colegiado.setPais(pais);
            tipoColegiado.setTcoCodigo(2); //tipoCol externo
            colegiado.setTipoColegiado(tipoColegiado);
            colegiado.setSolCodigo(personaNatural.getSolCodigo());

//            if(colegiado.getColnumeroCip().length()<6){
//                String numeroCIP = colegiado.getColnumeroCip();
//                switch(numeroCIP.length()){
//                    case 1 : numeroCIP = "00000"+numeroCIP; break;
//                    case 2 : numeroCIP = "0000"+numeroCIP; break;
//                    case 3 : numeroCIP = "000"+numeroCIP; break;
//                    case 4 : numeroCIP = "00"+numeroCIP; break;
//                    case 5 : numeroCIP = "0"+numeroCIP; break;
//                }
//                colegiado.setColnumeroCip(numeroCIP);
//            }

            colegiadoDelegado.create(colegiado);

        }else{
            //asignamos los datos de persona natural a colegiado
            //0=NO COLEGIADO; 1=COLEGIADO; 2=PREINSCRITO
            personaNatural.setPerTipo(1);
            personaNatural.setPerActivo(true);
            personaNatural.setPertieneImagen(false);
            personaNatural.setPerfechaRegistro(new Date());
            nacion = delegadoNacionalidad.buscarPeruano();
            personaNatural.setNacionalidad(nacion);
            delegadoPersonaNatural.create(personaNatural);

            colegiado.setSolCodigo(personaNatural.getSolCodigo());
            colegiado.setPersonaNatural(personaNatural);
            colegiado.setColestaVivo(true);
            pais = delegadoPais.buscaPeru();
            colegiado.setPais(pais);
            tipoColegiado.setTcoCodigo(2); //tipoCol externo
            colegiado.setTipoColegiado(tipoColegiado);

//            if(colegiado.getColnumeroCip().length()<6){
//                String numeroCIP = colegiado.getColnumeroCip();
//                switch(numeroCIP.length()){
//                    case 1 : numeroCIP = "00000"+numeroCIP; break;
//                    case 2 : numeroCIP = "0000"+numeroCIP; break;
//                    case 3 : numeroCIP = "000"+numeroCIP; break;
//                    case 4 : numeroCIP = "00"+numeroCIP; break;
//                    case 5 : numeroCIP = "0"+numeroCIP; break;
//                }
//                colegiado.setColnumeroCip(numeroCIP);
//            }

            colegiadoDelegado.create(colegiado);
        }
        //asignamos la direccion al Colegiado Externo
        if(direccion.getDpeDireccion().length()>0){
            direccion.setSolCodigo(colegiado.getPersonaNatural());
            direccion.setDpeActivo(true);
            delegadoDireccion.create(direccion);

        }

        //asignamos telefono y celular al colegiado
        if(telefono.getTsoNumero().length()>0){
            telefono.setSolCodigo(colegiado.getPersonaNatural());
            telefono.setTsoEstado(true);
            telefono.setTsotipoTelefono("Fijo");
            delegadoTelefono.create(telefono);
        }
        if(celular.getTsoNumero().length()>0){
            celular.setSolCodigo(colegiado.getPersonaNatural());
            celular.setTsoEstado(true);
            celular.setTsotipoTelefono("Celular");
            delegadoTelefono.create(celular);
        }

        //asignamos formacion profesional al colegiado
        formacion.setColegiado(colegiado);
        titulo = delegadoTitulo.find(titCodigo);
        formacion.setTitulo(titulo);
        formacion.setEspCodigo(titulo.getEspCodigo());
        delegadoFormacion.create(formacion);
//        colegiado.getListaFormacion().add(formacion);
//        colegiadoDelegado.edit(colegiado);

        //creamos la persona juridica
//
//        if(perJuridica.getEmprazonSocial().length() > 0){
//        perJuridica.setEmpEsBanco(false);
//        perJuridicaDelegado.create(perJuridica);
//
//        //asignamos la direccion a la persona natural
//        direccionEmp.setSolCodigo(perJuridica);
//        delegadoDireccion.create(direccionEmp);
//
//        //asignamos el telefono a la persona juridica
//        telefonoEmp.setSolCodigo(perJuridica);
//        telefonoEmp.setTsotipoTelefono("Fijo");
//        telefonoEmp.setTsoEstado(true);
//        delegadoTelefono.create(telefonoEmp);
//
//        //creamos la experiencia laboral
//        experiencia.setEmpCodigo(perJuridica);
//        experiencia.setColCodigo(colegiado);
//        expLabDelegado.create(experiencia);
//        }
        //creamos colegiadoEspecialidad
        colEsp.setCesActivo(true);
        colEsp.setColCodigo(colegiado);
        colEsp.setCesPrioridad(true);
        colEspDelegado.create(colEsp);
//        colegiado.getColegiadoEspecialidadCollection().add(colEsp);
//        colegiadoDelegado.edit(colegiado);

//        validarCodigo();
        destino =  "subir_docExt";
        return destino;
    }



    public String validarCodigo(){

    CodeGeneratorController control = (CodeGeneratorController) ControladorAbstracto.getBean("CodeGeneratorController");
    String codigoGenerado = control.getCodigoGenerado();

        if(genCodigo.compareTo(codigoGenerado)==0){

            destino =  "subir_docExt";
        }else{
            activo = true;
            genCodigo = "";
            destino = null;
        }
      return null;
    }

    public String validaCodigo(){

        validarCodigo();
        return destino;
    }

    public String limpiar(){

        colegiado =  new Colegiado();
        perJuridica = new PersonaJuridica();
        direccion = new DireccionPersona();
        telefono = new TelefonoSolicitante();
        celular = new TelefonoSolicitante();
        colEsp = new ColegiadoEspecialidad();
        formacion = new FormacionProfesional();
        telefonoEmp = new TelefonoSolicitante();
        direccionEmp = new DireccionPersona();
        experiencia = new ExperienciaLaboral();
        nacion = new Nacionalidad();
        pais = new Pais();
        tipoColegiado = new TipoColegiado();
        personaNatural = new PersonaNatural();
        persona = new PersonaNatural();
        personaJuridica = new PersonaJuridica();
        titulo = new Titulo();
        colImagen = new ColegiadoImagen();
        tabber = "personal";
        return null;
    }

    //SUBIR ARCHIVOS

    private UploadedFile upFile;
    boolean rendSuccess = false;
    boolean rendFailure = false;
    private String imagen;

    public boolean isRendFailure() {
        return rendFailure;
    }

    public void setRendFailure(boolean rendFailure) {
        this.rendFailure = rendFailure;
    }

    public boolean isRendSuccess() {
        return rendSuccess;
    }

    public void setRendSuccess(boolean rendSuccess) {
        this.rendSuccess = rendSuccess;
    }

    public UploadedFile getUpFile() {
        return upFile;
    }

    public void setUpFile(UploadedFile upFile) {
        this.upFile = upFile;
    }

    public String getImagen() {
        return imagen;
    }

    public void setImagen(String imagen) {
        this.imagen = imagen;
    }

    public String upload() throws IOException {
        String extension;
        try {
                //validar el tipo de imagen
                if(colImagen.getTimCodigo().getTimCodigo()==1){
                   dirImagen=dirImagen.concat("fotos/");
                }else{
                    if(colImagen.getTimCodigo().getTimCodigo()==2){
                        dirImagen=dirImagen.concat("dniFrente/");
                    }else{
                        if(colImagen.getTimCodigo().getTimCodigo()==3){
                            dirImagen=dirImagen.concat("dniEspalda/");
                        }else{
                            if(colImagen.getTimCodigo().getTimCodigo()==11){
                                dirImagen=dirImagen.concat("documento/");
                                }else{
                                   if(colImagen.getTimCodigo().getTimCodigo()==9){
                                      dirImagen=dirImagen.concat("firma/");
                                     }
                                }
                            }
                        }
                    }

                extension = upFile.getName().substring(upFile.getName().length()-4,upFile.getName().length());
                InputStream stream = upFile.getInputStream();
                dirImagen = dirImagen.concat(colegiado.getPersonaNatural().getPerNroDNI().concat(extension));
                OutputStream out=new FileOutputStream(dirImagen);
                long size = upFile.getSize();
                byte[] buffer = new byte[(int) size];
                stream.read(buffer, 0, (int) size);
                out.write(buffer, 0, (int) size);
                stream.close();
                out.close();
                guardaImagen();
                rendSuccess = true;
                rendFailure = false;
//                setImagen(upFile.getName());
                System.out.println("File Upload Successful.");
                return "ok";

        } catch (Exception ioe) {
            System.out.println("File Upload Unsuccessful.");
            System.out.println("errorrrr" + ioe.toString());
            rendSuccess = false;
            rendFailure = true;
            return "no";
        }
    }

   public String guardaImagen(){
     //almacenamos las imagenes del colegiado
        
     colImagen.setColCodigo(colegiado);
     colImagen.setCimRuta(dirImagen);
     colImagen.setCimFechaRegistro(new Date());
     delegadoImagen.create(colImagen);

     personaNatural.setPertieneImagen(true);
     delegadoPersonaNatural.edit(personaNatural);
     colImagen = new ColegiadoImagen();
     dirImagen = "/modulos/colegiatura/archivos/";
     return null;
    }

    public List<ColegiadoImagen> getListaPorColegiado(){

        return delegadoImagen.listaPorColegiado(colegiado);
    }

    public String Terminar(){

        colegiado =  new Colegiado();
        perJuridica = new PersonaJuridica();
        direccion = new DireccionPersona();
        telefono = new TelefonoSolicitante();
        celular = new TelefonoSolicitante();
        colEsp = new ColegiadoEspecialidad();
        formacion = new FormacionProfesional();
        telefonoEmp = new TelefonoSolicitante();
        direccionEmp = new DireccionPersona();
        experiencia = new ExperienciaLaboral();
        nacion = new Nacionalidad();
        pais = new Pais();
        tipoColegiado = new TipoColegiado();
        personaNatural = new PersonaNatural();
        persona = new PersonaNatural();
        personaJuridica = new PersonaJuridica();
        titulo = new Titulo();
        colImagen = new ColegiadoImagen();
        return "mensaje";
    }


    public String buscarColegiadoWS() throws ParseException{

        try{
            colegiadoWS = colegiadoDelegado.buscarColegiadoWS(cip);

            if(colegiadoWS != null){
            personaNatural.setPerNombres(colegiadoWS.getWs_Nomb());
            personaNatural.setPerapellidoPaterno(colegiadoWS.getWs_apePat());
            personaNatural.setPerapellidoMaterno(colegiadoWS.getWs_apeMat());

            String fechaNac = colegiadoWS.getWs_fech_nac();
            SimpleDateFormat sdfn= new SimpleDateFormat("yyyy-MM-dd");
            Date dateNac = sdfn.parse(fechaNac);

            personaNatural.setPerfechaNacimiento(dateNac);
            personaNatural.setPerNroDNI(colegiadoWS.getWs_dni());
            personaNatural.setSolcorreocip(colegiadoWS.getWs_mail_cip());

            String fechaIncorp = colegiadoWS.getWs_fech_incorp();
            SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
            Date dateIncorp = sdf.parse(fechaIncorp);

            colegiado.setColfechaIncorporacion(dateIncorp);
            colegiado.setColnumeroCip(String.valueOf(cip));
            }else{
                cip = 0;
                mostrarMensaje("ADVERTENCIA: ", "El colegiado no se encuentra...", FacesMessage.SEVERITY_WARN);
                mostrarMensaje("ADVERTENCIA: ", "El Sistema del Consejo Nacional se encuentra desactivado...", FacesMessage.SEVERITY_WARN);
            }
        }catch(Exception ex){
            mostrarMensaje("ADVERTENCIA: ", "El Sistema del Consejo Nacional se encuentra desactivado...", FacesMessage.SEVERITY_WARN);
        }
        return null;
    }

    public String buscarColegiadoCN(){

        try{
            colegiadoWS = new busqColXCip.Colegiado();
            colegiadoWS = colegiadoDelegado.buscarColegiadoWSPorApellidos(apepat, apemat, nombres);
            if(colegiadoWS != null){
                ws = true;
                
            }else{
                mostrarMensaje("ADVERTENCIA: ", "El colegiado no se encuentra...", FacesMessage.SEVERITY_WARN);
                mostrarMensaje("ADVERTENCIA: ", "El Sistema del Consejo Nacional se encuentra desactivado...", FacesMessage.SEVERITY_WARN);
            }
            cip = 0;
            apepat = null;
            apemat = null;
            nombres = null;
         }catch(Exception ex){
            mostrarMensaje("ADVERTENCIA: ", "El Sistema del Consejo Nacional se encuentra desactivado...", FacesMessage.SEVERITY_WARN);
        }

        return null;
    }

    public String buscarColegiadoCNxCIP(){

        try{
            colegiadoWS = new busqColXCip.Colegiado();
            colegiadoWS = colegiadoDelegado.buscarColegiadoWS(cip);
            if(colegiadoWS != null){
                ws = true;
                
            }else{
                mostrarMensaje("ADVERTENCIA: ", "El colegiado no se encuentra...", FacesMessage.SEVERITY_WARN);
                mostrarMensaje("ADVERTENCIA: ", "El Sistema del Consejo Nacional se encuentra desactivado...", FacesMessage.SEVERITY_WARN);
            }
            cip = 0;
            apepat = null;
            apemat = null;
            nombres = null;
         }catch(Exception ex){
            mostrarMensaje("ADVERTENCIA: ", "El Sistema del Consejo Nacional se encuentra desactivado...", FacesMessage.SEVERITY_WARN);
        }
        return null;
    }

    public String retornar(){

        ws = false;
        colegiadoWS = new busqColXCip.Colegiado();
        return null;
    }

    public void mostrarMensaje(String resumen, String detalle, FacesMessage.Severity severidad) {
        try {
            FacesMessage fm = new FacesMessage(severidad, resumen, detalle);
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        } catch (Exception e) {
            FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), e.getMessage());
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        }
    }

}
